#pragma once

#include <BWAPI.h>
#include "BattleModelUnits.hpp"
#include <vector>

class Slot{
public:
	int m_capacity;
	int m_idx;
	std::vector< BattleModelUnit* > m_units;
	int freeCapacity() const;
	void print() const;
	Slot(
		const int capacity,
		const int idx
	);
};

class BattleModel{
	std::vector<Slot> m_slots;
	std::vector<BattleModelUnit*> m_myUnits;
	std::vector<BattleModelUnit*> m_enemyUnits;
public:
	BattleModel();
	void print() const;
	void addUnit(
		const int location,
		const std::string name,
		const BWAPI::UnitType type,
		const BattleModelUnitController controller
	);
	void onFrame();
};